#ifndef RENDERER_TYPES_H
#define RENDERER_TYPES_H

#include "engine_api.h"
#include <d3dx9.h>
#include "MathDX.h"
#include <Window.h>

namespace pg1{
struct ENGINE_API ColorVertex
{
	float x, y, z;
	DWORD color;
};

extern const int ColorVertexType;

struct ENGINE_API TextureCoordVertex{
		float x;
		float y;
		float z;

		float u;
		float V;
};
extern const int TextureCoordVertexType;

typedef IDirect3DTexture9* Texture;
static const Texture NoTexture = NULL;

enum Primitive{
	
	TriangleList = 0,
	TriangleStrip,
	PointList,
	LineList,
	LineStrip,
	TriangleFan,
	PrimitiveCount
};
enum MatrixType{
		View = 0,
		Projection,
		World,
		MatrixTypeCount
};

#define PG1_COLOR_ARGB(a,r,g,b)  ((DWORD)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
#define PG1_COLOR_RGB(r,g,b) PG1_COLOR_ARGB(0xff,r,g,b)
}
#endif